package com.atguigu.gmall.index.aspect;

import java.lang.annotation.*;

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface GmallCache {

    /**
     * 缓存Key的前缀
     * key: prefix + ":" + 方法参数
     * @return
     */
    String prefix() default "gmall:";

    /**
     * 缓存有效时间
     * 默认是五分钟
     * @return
     */
    int timeout() default 5;

    /**
     * 为了防止缓存雪崩 使用指定时间随机值范围
     * 默认是五分在
     * @return
     */
    int random() default 5;

    /**
     * 为了防止缓存击穿
     *
     * @return
     */
    String lock() default "gmall:lock:";



}
